package ufs.dcomp.mgemeos.servicos;

import java.util.ArrayList;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import ufs.dcomp.mgemeos.dao.ExposicaoDAO;
import ufs.dcomp.mgemeos.dao.ExpositorDAO;
import ufs.dcomp.mgemeos.dao.HorarioDAO;
import ufs.dcomp.mgemeos.dao.LocalDAO;
import ufs.dcomp.mgemeos.negocio.Horario;
import ufs.dcomp.mgemeos.negocio.Local;
import ufs.dcomp.mgemeos.perfis.Expositor;
import ufs.dcomp.mgemeos.negocio.Exposicao;

/**
 *
 * @author Luiz Marcus
 * @modificacao 19/02/11
 */
@WebService()
public class Exposicoes {

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterExpositor")
    public Expositor getExpositor(@WebParam(name = "id")
    int id) {
    
        return new ExpositorDAO().obterExpositor(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterExpositores")
    public ArrayList<Expositor> obter_Expositores() {
        
        return new ExpositorDAO().obterExpositor_todos();
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "registrarExpositor")
    public boolean RegistrarExpositor(@WebParam(name = "expositor")
    Expositor expositor) {
        
        return new ExpositorDAO().inserirExpositor(expositor);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "deletarExpositor")
    public boolean deletarExpositor(@WebParam(name = "id")
    int id) {
       
        return new ExpositorDAO().deletarExpositor(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterExposicoes")
    public ArrayList<Exposicao> obter_Exposicoes(@WebParam(name = "id")
    int id) {
        
        return new ExposicaoDAO().obter_Expositor_Exposicoes(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "atualizarExposicao")
    public boolean atualizarExposicao(@WebParam(name = "exposicao")
    Exposicao exposicao) {
        
        return new ExposicaoDAO().atualizarExposicao(exposicao);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "atualizarExpositor")
    public boolean atualizarExpositor(@WebParam(name = "expositor")
    Expositor expositor) {
        
        return new ExpositorDAO().atualizarExpositor(expositor);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterTodasExposicoes")
    public ArrayList<Exposicao> obter_todas_Exposicoes() {
        
        return new ExposicaoDAO().obterExposicao_todos();
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "deletarExposicao")
    public boolean deletarExposicao(@WebParam(name = "id")
    int id) {
        
        return new ExposicaoDAO().deletarExposicao(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterTodosLocais")
    public ArrayList<Local> obter_todos_locais() {
        
        return new LocalDAO().obterLocal_todos();
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterLocal")
    public Local obter_Local(@WebParam(name = "id")
    int id) {
        
        return new LocalDAO().obterLocal(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "RegistrarExposicao")
    public boolean RegistrarExposicao(@WebParam(name = "exposicao")
    Exposicao exposicao) {
        
        return new ExposicaoDAO().inserirExposicao(exposicao);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "registrarLocal")
    public boolean RegistrarLocal(@WebParam(name = "local")
    Local local) {
        
        return new LocalDAO().inserirLocal(local);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "registrarHorario")
    public boolean RegistrarHorario(@WebParam(name = "horario")
    Horario horario) {
        //TODO write your implementation code here:
        return new HorarioDAO().inserirHorario(horario);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "deletarHorario")
    public boolean deletarHorario(@WebParam(name = "id")
    int id) {
        //TODO write your implementation code here:
        return new HorarioDAO().deletarHorario(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterExposicao")
    public Exposicao obter_Exposicao(@WebParam(name = "id")
    int id) {
        //TODO write your implementation code here:
        return new ExposicaoDAO().obterExposicao(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "obterExpositorPorLogin")
    public Expositor obterExpositorPorLogin(@WebParam(name = "login")
    String login) {
        //TODO write your implementation code here:
        return new ExpositorDAO().obterExpositor_por_Login(login);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "deletarLocal")
    public boolean deletarLocal(@WebParam(name = "id")
    int id) {
        //TODO write your implementation code here:
        return new LocalDAO().deletarLocal(id);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "atualizaLocal")
    public boolean atualizaLocal(@WebParam(name = "local")
    Local local) {
        //TODO write your implementation code here:
        return new LocalDAO().atualizarLocal(local);
    }
}